Народ последние дни воодушевился открытием Грааля
smart-lab.ru/blog/754088.php
Давайте разберёмся. Ставим эксперимент.
У меня в хозяйстве скачана с Финама минутная история 36 квартальных фьючерсов Si с 2013 по 2021 год. Разделяю кварталы на недели с четверга по четверг и в начале каждой недели в 19:01 регистрирую шорт кола и пута на центральном (ближайшем к цене фьючерса) страйке, а в конце этой же недели в 18:44 регистрирую откуп опционов.
Теоретические цены-премии опционов определяю по Блэку-Шоулзу. Волатильность в начале недели принимаю 15%, в конце — 20%. Проскальзывание на шорт принимаю 1% от теорцены. Комиссию на куплю+продажу одного опциона принимаю 8 руб. Это вполне оптимистично.
Логика видна в главном цикле скрипта WealthLab'а.
for (int i = i0; i < weeks.Count; ++i) {
int idxIni = IndexOf (weeks[i][0]-1, entryTime);
int idxFin = IndexOf (weeks[i][1], exitTime);
double strike = mwu.RoundTo (Open[idxIni], strikeStep);
double dura = (Date[idxFin] - Date[idxIni]).TotalDays;
double calIni = OptPrice ('C', Open[idxIni], strike, dura, volaIni);
double putIni = OptPrice ('P', Open[idxIni], strike, dura, volaIni);
double calFin = OptPrice ('C', Close[idxFin], strike, 1e-6, volaFin);
double putFin = OptPrice ('P', Close[idxFin], strike, 1e-6, volaFin);
double win = (calIni+putIni) * (1-slpg) - (calFin+putFin) - 2*fee;
PrintDebug (String.Format (fmt, i, Date[idxFin].ToShortDateString()
,calIni, putIni, calFin, putFin, win));
} // for (int i = i0
Вот выдача за первый квартал
(
Читать дальше )